# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         less2_02
# Description:  闭包
# Author:       asus
# Date:         2019/3/9
#-------------------------------------------------------------------------------



def funcA(x):
    index = 0
    index += 2
    def funcB(y):
        print('funcB',index)
        if y:
            ret = x * y
        else:
            ret = x * index
        return ret
    return funcB
#先外层函数，后内层函数
funcC = funcA(3)    #funC是变量名，是一个函数类型的变量,返回值为函数类型
print('funcC',type(funcC))   #输出funcC是什么类型的function是函数
result1 = funcC(6)
print(result1)

#第二层函数没有被调用时
result = funcA(3)#柯里化思想
print(result)

#PS如果第二层函数没有被调用（没有传入参数值），那么直接返回第一层函数的返回值，就像上面的函数，
# 直接返回funcB（第一层函数的return funcB）